package YourSpace::Controller::Root;
# $WCREV WVDATE$
use strict;
use warnings;
use base 'Catalyst::Controller';
use Data::Dump qw/dump/;
#
# Sets the actions in this controller to be registered with no prefix
# so they function identically to actions created in MyApp.pm
#
__PACKAGE__->config->{namespace} = '';

=head1 NAME

YourSpace::Controller::Root - Root Controller for YourSpace

=head1 DESCRIPTION

[enter your description here]

=head1 METHODS

=cut

=head2 default

=cut

sub default : Private {
    my ( $self, $c, $page ) = @_;
    
    #$c->cache_page( 300 );  # comment out for debugging
    my $blogs =[ 
	    $c->model('YourSpaceDB::Blog')->search( 
	        { 
		        blog_is_hidden => 0,
				blog_is_reply  => 0,
				blog_is_draft  => 0,
		    }, 
		    { 
		        rows           => 5,
                page           => $page,
			    order_by       => 'blog_date DESC' 
		    }
	    )->all
	];
	my $replies;
	
	push @$replies,  
	{ 
	    blog_id => $c->model('YourSpaceDB::Blog')->search( { blog_parent => $_->blog_id } )->count 
	} for @$blogs ;
	
	$c->stash->{new_blogs} = $blogs;
	$c->stash->{replies}   = $replies;
 
    $c->stash->{template} = 'index.tt2';
}


=head2 auto
    
    Check if there is a user and, if not, forward to login page
    
=cut
    
# Note that 'auto' runs after 'begin' but before your actions and that
# 'auto' "chain" (all from application path to most specific class are run)
# See the 'Actions' section of 'Catalyst::Manual::Intro' for more info.
sub auto : Private {
    my ($self, $c) = @_;
    
    # Allow unauthenticated users to reach the login page.  This
    # allows anauthenticated users to reach any action in the Login
    # controller.  To lock it down to a single action, we could use:
    #   if ($c->action eq $c->controller('Login')->action_for('index'))
    # to only allow unauthenticated access to the C<index> action we
    # added above.
    #if ($c->action eq $c->controller('Login')->action_for('index')) {
    #    return 1;
    #}
    
    # If a user doesn't exist, force login
    #if (!$c->user_exists) {
        # Dump a log message to the development server debug output
    #    $c->log->debug('***Root::auto User not found, forwarding to /login');
        # Redirect the user to the login page
    #        $c->response->redirect($c->uri_for('/login'));
        # Return 0 to cancel 'post-auto' processing and prevent use of application
     #   return 0;
    #}
    
    # User found, so return 1 to continue with processing after this 'auto'
    return 1;
}

sub captcha : Global {
    my ($self, $c) = @_;
    $c->create_captcha();
}

sub unauthorized : Global {

    my ($self, $c) = @_;
    $c->stash->{template} = "unauthorized.tt2";

}
=head2 end

Attempt to render a view, if needed.

=cut 

sub end : ActionClass('RenderView') {}

=head1 AUTHOR

Catalyst developer

=head1 LICENSE

This library is free software, you can redistribute it and/or modify
it under the same terms as Perl itself.

=cut

1;
